n,m=map(int,input().split())
matrix=[input().split(",") for i in range(0,n)]

def getResult():
    ans=0
    # 偏移量：当前坐标 减去 每个元素分别表示当前坐标的  正左、正上、左上、右上
    # 偏移量：当前坐标 加上 每个元素分别表示当前坐标的  正右、正下、右下、左下
    offsets=((0,1),(1,0),(1,1),(1,-1))
    # 双层for循环遍历每一个元素
    for i in range(0,n):
        for j in range(0,m):
            if matrix[i][j]=="M":
                # 如果当前位置是男生，判断当前位置的八个方位
                for offset in offsets:
                    oldI=i-offset[0]
                    oldJ=j-offset[1]
                    # 如果当前位置的正左、正上、左上、右上的某一位置为男生，则跳过本次循环，因为下面的
                    # 逻辑会对当前位置的  正右、正下、右下、左下位置进行了计算，不用重复计算
                    if n>oldI>=0 and m>oldJ>=0 and matrix[oldI][oldJ]=="M":
                        continue
                    length=1
                    newI=i+offset[0]
                    newJ=j+offset[1]
                    while n>newI>=0 and m>newJ>=0 and matrix[i][j]=="M":
                        length=length+1
                        newI=newI+offset[0]
                        newJ=newJ+offset[1]
                    ans=max(ans,length)
    return ans
print(getResult())
# 3 4
# F,M,M,F
# F,M,M,F
# F,F,F,M
# 3